iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
Modern Web

Flask30天教學-從入門到入土系列 第 23

[Day-23] flask與line bot(3) 傳送影片、音檔、位置

  • 分享至 

  • xImage
  •  

前言

昨天教導大家一些基本功能與API的使用,然而line提供的API還有非常多尚未介紹,今天就讓我們繼續看下去吧~會教導大家傳送影片、音檔、位置等功能。

完整code

範例

傳送地址-LocationSendMessage()

if mtext == '@傳送位置':
    try:
        local_message = LocationSendMessage(
            title='國立臺灣科技大學',
            address='台北市大安區基隆路四段43號',
            latitude=25.013197188546123,  #緯度, 
            longitude=121.5405027081291  #經度
        )
        line_bot_api.reply_message(event.reply_token, local_message)
    except:
        line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!'))

  • Title-為傳送地址所顯示的標題
  • Address-為傳送位址時所顯示的內文
  • Latitude-為你要傳送該地圖位置的緯度
  • Longitude-為你要傳送該地圖位置的經度
    至於經緯度查詢可透過gooole 地圖查詢在該位置右鍵點及即可
    https://ithelp.ithome.com.tw/upload/images/20230924/20156616R08fv0VNCr.png

結果

https://ithelp.ithome.com.tw/upload/images/20230924/20156616nNjD2f2GIm.png

快速選單-QuickReply

if mtext == '@快速選單':
    try:
        message = TextSendMessage(
            text='請選擇最喜歡的程式語言',
            quick_reply=QuickReply(
                items=[
                    QuickReplyButton(
                        action=MessageAction(label="Python", text="Python")
                    ),
                    QuickReplyButton(
                        action=MessageAction(label="Java", text="Java")
                    ),
                    QuickReplyButton(
                        action=MessageAction(label="C#", text="C#")
                    ),
                    QuickReplyButton(
                        action=MessageAction(label="Basic", text="Basic")
                    ),
                ]
            )
        )
        line_bot_api.reply_message(event.reply_token,message)
    except:
        line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!'))
  • 先透過TextSendMessage設定text來決定你要問的問題
  • 再透過QuickReply將你要組成的button group起來
  • 最後QuickReplyButton就是你要顯示的button,label為要顯示的字,text為按下去後要回復的文字,且要透過MessageAction實現

範例

https://ithelp.ithome.com.tw/upload/images/20230924/20156616Us8KwZD5r3.png

傳送音檔-AudioSendMessage

再給範例前我們必須在app.py的目錄下新增static資料夾,且要在裡面放入你想傳入的音檔,此外要加上url的位置

baseurl = '你的NGROK網址/static/'  #靜態檔案網址

接者就能實現了

 if mtext == '@傳送聲音':
    try:
        message = AudioSendMessage(
            original_content_url=baseurl+'你的音檔',  #聲音檔置於static資料夾
            duration=20000  #聲音長度20秒
        )
        line_bot_api.reply_message(event.reply_token, message)
    except:
        line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!'))
  • original_content_url為你的音檔位置也可以放置網路有公開之音檔
  • duration為你要持續播放得秒數

結果

https://ithelp.ithome.com.tw/upload/images/20230924/20156616eMYjy5GP8O.png

傳送影片

一樣要在static資料夾裡面放入你想傳入的影片,此外要加上url的位置

try:
    message = VideoSendMessage(
        original_content_url=baseurl + 'robot.mp4',  #影片檔置於static資料夾
        preview_image_url=baseurl + 'robot.jpg'
    )
    line_bot_api.reply_message(event.reply_token, message)
except:
    line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!')) 
  • original_content_url為你的影片位置也可以放置網路有公開之影片
  • preview_image_url為影片要撥放前所要顯示的樣子

範例

https://ithelp.ithome.com.tw/upload/images/20230924/201566162TYCzQehUu.png

結語

今天我們介紹了更多line api所提供的功能,然而他還有許多功能我們沒介紹到,明天再繼續帶大家探討~


上一篇
[Day-22] flask與line bot(2)傳送文字、 貼圖、圖片
下一篇
[Day-24] flask與line bot(4)傳送與下方資訊欄
系列文
Flask30天教學-從入門到入土30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言